# -*- coding: utf-8 -*-
"""
Created on Wed Sep 11 14:29:12 2024

lambda 函数是一种小型、匿名的、内联函数，它可以具有任意数量的参数，但只能有一个表达式。
匿名函数不需要使用 def 关键字定义完整函数
    lambda是 Python 的关键字，用于定义 lambda 函数。
    arguments 是参数列表，可以包含零个或多个参数，但必须在冒号(:)前指定。
    expression 是一个表达式，用于计算并返回函数的结果。
@author: Administrator
"""

#无参

f = lambda:"hello world"

print(f())

#无返回值

myprint = lambda x:print("x=%s"%(x))

myprint(100)


# 一个参数

add = lambda a : a + 10

print(add(5))

# 多个参数
myadd = lambda a,b,c :a +b +c 

print(myadd(1,2,3))

#lambda与list使用

numbers=[1,2,3,4]
squared=list(map(lambda x: x * x ,numbers))
print(squared)


#lambda 闭包变量捕获
print("lambda变量捕获")
"""
输出 
3
3
3
"""
callables = []

for i in (1,2,3):
    callables.append(lambda:i)
    
for f in callables:
    print(f())

#lambda 闭包变量捕获
print("lambda处理变量捕获")
"""
输出 
1
2
3
"""
callables = []

for i in (1,2,3):
    callables.append(lambda a=i : a)
    
for f in callables:
    print(f())





